package com.cw.base.common.model.util;

import com.cw.base.common.model.enums.EnumModuleCode;
import com.cw.lang.common.constants.SymbolConstants;

/**
 * 获取缓存key工具类
 * 缓存key存在动态参数,用get方法获取
 *
 * @author ljq
 * @since 2018/12/21
 */
public class CacheKeyUtil {


    /**
     * 获取数据字典缓存key
     *
     * @param dictKey 数据字典key
     * @return String
     */
    public static String getDictCacheKey(String dictKey) {
        return getCacheKey(EnumModuleCode.JEEYC, "dict", dictKey);
    }

    /**
     * 业务场景生成缓存key
     * 租户ID:模块缩写:业务场景(场景名规则：大写开头，大驼峰法):业务含义
     * 生成key例子= 000:USER:LoginUserId:000UC000001
     *
     * @param moduleCode 模块
     * @param businessScene 业务场景
     * @param businessCode 业务含义
     * @return 缓存key
     */
    public static String getCacheKey(EnumModuleCode moduleCode, String businessScene,
        String businessCode) {
        return String.join(SymbolConstants.COLON, moduleCode.getAbbreviate(), businessScene, businessCode);
    }

}
